﻿using System;

namespace NewRetail.Application.Components.WeChat.Model.ResponseEvent
{
    /// <summary>
    /// 事件类型。
    /// </summary>
    public enum EventType
    {
        /// <summary>
        /// 订阅。
        /// </summary>
        Subscribe,

        /// <summary>
        /// 取消订阅。
        /// </summary>
        UnSubscribe,

        /// <summary>
        /// 用户已关注。
        /// </summary>
        Scan,

        /// <summary>
        /// 上报地理位置。
        /// </summary>
        Location,

        /// <summary>
        /// 点击菜单拉取消息事件。
        /// </summary>
        Click,

        /// <summary>
        /// 点击菜单跳转事件。
        /// </summary>
        View,

        /// <summary>
        /// 模板消息发送。
        /// </summary>
        TemplateSendJobFinish,

        /// <summary>
        /// 群发消息发送。
        /// </summary>
        MassSendJobFinish,

        /// <summary>
        /// 扫码推事件的事件推送。
        /// </summary>
        ScanCode_Push,

        /// <summary>
        /// 扫码推事件且弹出“消息接收中”提示框的事件推送
        /// </summary>
        ScanCode_WaitMsg,

        /// <summary>
        /// 弹出系统拍照发图的事件推送。
        /// </summary>
        Pic_SysPhoto,

        /// <summary>
        /// 弹出拍照或者相册发图的事件推送。
        /// </summary>
        Pic_Photo_Or_Album,

        /// <summary>
        /// 弹出微信相册发图器的事件推送。
        /// </summary>
        Pic_WeiXin,

        /// <summary>
        /// 弹出地理位置选择器的事件推送。
        /// </summary>
        Location_Select,

        /// <summary>
        /// 创建会话。
        /// </summary>
        KF_Create_Session,

        /// <summary>
        /// 关闭会话。
        /// </summary>
        KF_Close_Session,

        /// <summary>
        /// 转接会话。
        /// </summary>
        KF_Switch_Session,

        /// <summary>
        /// 卡券通过审核。
        /// </summary>
        Card_Pass_Check,

        /// <summary>
        /// 卡券不通过审核。
        /// </summary>
        Card_Not_Pass_Check,

        /// <summary>
        /// 用户在领取卡券时。
        /// </summary>
        Card_User_Get,
        /// <summary>
        /// 用户在激活卡券时。
        /// </summary>
        Card_User_Member_Submit,
        /// <summary>
        /// 用户在删除卡券时。
        /// </summary>
        Card_User_Delete,

        /// <summary>
        /// 卡券被核销时。
        /// </summary>
        Card_User_Consume,

        /// <summary>
        /// 用户在进入会员卡时。
        /// </summary>
        Card_User_View,

        /// <summary>
        /// 用户在卡券里点击查看公众号进入会话时（需要用户已经关注公众号）。
        /// </summary>
        Card_UserEnterSession,

        /// <summary>
        /// WIFI连接成功时。
        /// </summary>
        WifiConnected,

        /// <summary>
        /// 摇一摇。
        /// </summary>
        ShakearoundUserShake,
        /// <summary>
        /// 默认一个不支持的类型（非微信里类型）
        /// </summary>
        Unknow
    }

    public class EventTypeConvert
    {
        public static EventType GetEventTypeByString(string eventType)
        {
            switch (eventType.ToLower())
            {
                case "scan":
                    return EventType.Scan;
                case "subscribe":
                    return EventType.Subscribe;
                case "unsubscribe":
                    return EventType.UnSubscribe;
                case "user_get_card":
                    return EventType.Card_User_Get;
                case "user_view_card":
                    return EventType.Card_User_View;
                case "submit_membercard_user_info":
                    return EventType.Card_User_Member_Submit;
            }
            //throw new NotSupportedException("不支持的事件类型：" + eventType);
            return EventType.Unknow;
        }
    }
}
